package jnpf.database.model.dto;

import jnpf.database.model.interfaces.DataSourceMod;
import jnpf.util.StringUtil;
import lombok.Data;

/**
 * 数据源参数传输对象
 * //注意：这里的参数dataSourceUtil是spring托管的全局唯一变量，此数据传输对象防止数据源互串
 *
 * @author JNPF开发平台组 YanYu
 * @version V3.2.0
 * @copyright 引迈信息技术有限公司
 * @date 2021/10/28
 */
@Data
public class DataSourceDTO implements DataSourceMod {

    /**
     * 数据库类型
     */
    private String dbType;

    /**
     * 主机ip
     */
    private String host;

    /**
     * 端口
     */
    private Integer port;

    /**
     * 库名
     */
    private String dbName;

    /**
     * 用户
     */
    private String userName;

    /**
     * 密码
     */
    private String password;

    /*
     * ============扩展===============
     * 为空时采取默认值
     */

    /**
     * 表空间
     */
    private String tableSpace;

    /**
     * 模式
     */
    private String dbSchema;

    /**
     * url
     */
    private String url;

    /**
     * 数据连接jdbc-url参数
     */
    private String prepareUrl;

    /**
     * 驱动包
     */
    private String driver;

    /**
     * 数据来源
     * 1:配置  2：数据连接
     */
    private Integer dataSourceFrom;

    @Override
    public DataSourceDTO dataSourceDTO() {
        return this;
    }

    /**
     * 多租户切换库名
     * @param dbName 库名
     * @return ignore
     */
    public DataSourceDTO reDbName(String dbName){
        if(StringUtil.isNotEmpty(dbName)){
            this.dbName = dbName;
        }
        return this;
    }
}
